Vector is base class of other vector like classes. It represents a series of vectors.
from py3d import Vector
Vector()
Vector([], dtype=float64)
Vector([0, 0, 0, 0])
Vector([0, 0, 0, 0])
Vector([1, 2, -4])
Vector([ 1, 2, -4])
Vector([1, 2, 3]).tile(2)
Vector([[1, 2, 3],
[1, 2, 3]])
import py3d
py3d.Vector([1, 2, 0, 3])
Vector([1, 2, 0, 3])
Vector([1]).tile(2)
Vector([[1],
[1]])
Get unit vector
import py3d
V32 = py3d.Vector([
[1, 3],
[2, -9],
[0.1, -3]])
V32
V32.U
Vector([[ 0.31622777, 0.9486833 ],
[ 0.21693046, -0.97618706],
[ 0.03331483, -0.99944491]])
Get length of vectors
V32.L
array([[3.16227766],
[9.21954446],
[3.0016662 ]])
from numpy import allclose
assert allclose(V32.U.L, [[1], [1], [1]])
Get homogeneous vector
V32.H
Vector3([[ 1. , 3. , 1. ],
[ 2. , -9. , 1. ],
[ 0.1, -3. , 1. ]])
Get a series of random vectors
import py3d
py3d.Vector.rand(2,3,4)
Vector([[[0.48961044, 0.2280419 , 0.03144997, 0.44361955],
[0.69558403, 0.82990375, 0.713804 , 0.18820878],
[0.7509442 , 0.47897484, 0.22989298, 0.22245835]],
[[0.3259781 , 0.27323364, 0.02468929, 0.20204964],
[0.50726472, 0.74046561, 0.89260775, 0.48703762],
[0.55285539, 0.75372082, 0.52172643, 0.67463878]]])
import py3d
py3d.Vector([[0,0],[1,2],[3,4]]).diff()
Vector([[1, 2],
[2, 2]])
Read pcd file
import py3d
py3d.read_pcd("ascii.pcd").xyz.as_point()
import py3d
pcd = py3d.read_pcd("binary.pcd")
print("min", pcd.min())
print("max", pcd.max())
pcd.xyz.as_point().paint(py3d.Color.map(pcd.z, pcd.z.min(), pcd.z.max()))
min [-1.09082863e+02 -4.56674919e+01 -4.33038330e+00 2.50000000e+01 1.22393358e+09] max [9.74602280e+01 8.35153122e+01 4.22846746e+00 2.55000000e+02 1.22393358e+09]